package com.threeox.commonlibrary.ui.view.inter.engine.multipage;

import com.threeox.commonlibrary.entity.engine.model.multipage.PageDataMessage;

import java.util.List;

/**
 *
 * @ClassName: INavigationIndicator
 *
 * @Description: TODO(导航指示器的接口)
 *
 * @author 赵屈犇
 *
 * @date 创建时间: 2017/8/10 15:17
 *
 * @version 1.0
 *
 */
public interface INavigationIndicator {


    // INavigationIndicator setIndicatorColor(int indicatorColor, int normalTextColor, int selectedTextColor);

    /**
     * 设置页面数据
     *
     * @param pageDataMessage
     * @return
     */
    INavigationIndicator setPageDataMessages(List<PageDataMessage> pageDataMessage);

    /**
     * 根据postion 得到页面数据
     *
     * @param postion
     * @return
     */
    PageDataMessage getPageDataMessage(int postion);

    /**
     * 得到所有页面数据
     *
     * @return
     */
    List<PageDataMessage> getPageDataMessage();

    /**
     * ViewPager 滑动时的回调
     *
     * @param position
     *              当前页面，及你点击滑动的页面
     * @param positionOffset
     *              当前页面偏移的百分比
     * @param positionOffsetPixels
     *              当前页面偏移的像素位置
     * @return
     */
    INavigationIndicator onPageScrolled(int position, float positionOffset, int positionOffsetPixels);

    /**
     * 导航器的响应事件
     *
     * @param onNavigationListener
     * @return
     */
    INavigationIndicator setOnNavigationListener(OnNavigationListener onNavigationListener);

    /**
     * 更新指示器数据
     *
     * @param postion
     * @param message
     * @return
     */
    INavigationIndicator updateMessage(int postion, PageDataMessage message);

}
